package com.example.producer;

import com.example.entity.VideoMessage;
import jakarta.jms.Topic;
import org.springframework.jms.core.JmsTemplate;
import org.springframework.web.bind.annotation.*;

@RestController  // 声明这是一个 Spring 的 REST 控制器，能够处理 HTTP 请求
@RequestMapping("/video")  // 设置 URL 的基础路径为 "/logistics"
public class VideoProducer {

    private final JmsTemplate jmsTemplate;  // JmsTemplate 用于发送 JMS 消息
    private final Topic logisticsTopic;    // Topic 用于指定消息发送的目标（主题）

    // 构造函数，用来注入 JmsTemplate 和 Topic
    public VideoProducer(JmsTemplate jmsTemplate, Topic logisticsTopic) {
        this.jmsTemplate = jmsTemplate;
        this.logisticsTopic = logisticsTopic;
    }

    // 定义一个 POST 请求的接口，用来发送物流消息
    @PostMapping("/send")  // 指定 HTTP 方法为 POST，URL 为 "/logistics/send"
    public String sendMessage(@RequestBody VideoMessage message) {
        // 将接收到的消息转换并发送到 logisticsTopic（主题）
        System.out.println("收到信息：" + message);
        jmsTemplate.convertAndSend(logisticsTopic, message);

        // 返回消息，表示发送成功
        return "作品消息已发送！";
    }
}
